"""
可变类型有：列表，字典，集合
不可变类型有：整数，浮点数，bool，元组，字符串
可变与不可变的区分可理解为：不通过赋值 = 就可以改变元素（数据）地址的称为可变，否则不可变
"""
my_list = [1, 2, 3]
my_list1 = [1, 2, 3]
print(id(my_list))
print(id(my_list1))  # 可见不论列表内数据是否一致，重新定义新的列表会重新引用
print(my_list1 is my_list)
print(my_list, id(my_list), id(my_list[-1]))
print(my_list1, id(my_list1), id(my_list1[0]))
my_list[-1] = 100
my_list1[0] = 1000
print(my_list, id(my_list), id(my_list[-1]))
print(my_list1, id(my_list1), id(my_list1[0]))  # 可见未通过 = 也将列表内的数据地址变更，故列表属于可变类型
my_tuple = (1, 2, 3, [1, 2, 3])
print(my_tuple, id(my_tuple), id(my_tuple[-1]), id(my_tuple[-1][1]))
my_tuple[-1][1] = 117
print(my_tuple, id(my_tuple), id(my_tuple[-1]), id(my_tuple[-1][1]))  # 可见未通过 =
# 不能将元组内的数据地址变更，尽管元组内的元素内的元素地址可以变更，故元组属于不可变类型
